// ./mongodb/manager/articleModel.js
const { MerchantModel: Merchant } = require("../../entity");

class MerchantManager {
  // 创建商家
  static async createMerchant(data) {
    const merchant = new Merchant(data);
    return await merchant.save();
  }

  // 更新商家
  static async updateMerchant(merchantId, updateData) {
    return await Merchant.findByIdAndUpdate(merchantId, updateData, {
      new: true,
    });
  }

  // 删除商家（标记删除）
  static async deleteMerchantById(merchantId) {
    return await Merchant.findByIdAndUpdate(
      merchantId,
      { deleted: true },
      { new: true },
    );
  }

  // 删除商家（永久删除）
  static async deleteMerchant(merchantId) {
    return await Merchant.findByIdAndDelete(merchantId);
  }

  // 查找商家（根据商家 ID）
  static async getMerchantById(merchantId) {
    return await Merchant.findById(merchantId).where({ deleted: false });
  }

  // 查找商家（根据商家名称）
  static async getMerchantByMerchantname(merchantname) {
    return await Merchant.findOne({ merchantname, deleted: false });
  }

  // 查找商家（获取所有未删除商家）
  static async getAllActiveMerchants() {
    return await Merchant.find({ deleted: false });
  }

  // 查找商家(根据商家所在城市和分类方式)
  static async getMerchantsByTownAndSort(town, sort) {
    let merchants = await Merchant.find({
      town,
      deleted: false,
    }).exec();

    // 如果有 sort 参数，再进行进一步筛选
    if (sort) {
      merchants = merchants.filter((merchant) => merchant.sort === sort);
    }

    // console.log(merchants);
    // console.log("222");

    return merchants;
  }
}

module.exports = MerchantManager;
